package com.caioweb.osa.modelo;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@Entity
public class Ambiente  implements Serializable{
	@Id @GeneratedValue 
	private Long id;
	
	@Column(name="tp_ambiente")
	private String tpAmbiente;
	@ManyToOne
	private Branch branch;
	@ManyToOne
	@JoinColumn(name="cliente_id")
	private Cliente cliente;
	@OneToMany(mappedBy="ambiente")
	private List<Historico> historicos;
	private Integer nrinicial;
	@ManyToOne
    @JoinColumn(name="banco_id")
	private TipoBancoDeDados tipoBancoDeDados;
	@ManyToOne(fetch =  FetchType.EAGER)
	@JoinColumn(name="ambiente_cliente_id")
	private TipoAmbienteCliente tipoAmbienteCliente;
	

	
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public List<Historico> getHistoricos() {
		return historicos;
	}
	public void setHistoricos(List<Historico> historicos) {
		this.historicos = historicos;
	}
	
	public String getTpAmbiente() {
		return tpAmbiente;
	}
	public void setTpAmbiente(String tpAmbiente) {
		this.tpAmbiente = tpAmbiente;
	}
	public Branch getBranch() {
		return branch;
	}
	public void setBranch(Branch branch) {
		this.branch = branch;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public Integer getNrinicial() {
		return nrinicial;
	}
	public void setNrinicial(Integer nrinicial) {
		this.nrinicial = nrinicial;
	}
	public TipoBancoDeDados getTipoBancoDeDados() {
		return tipoBancoDeDados;
	}
	public void setTipoBancoDeDados(TipoBancoDeDados tipoBancoDeDados) {
		this.tipoBancoDeDados = tipoBancoDeDados;
	}
	
	
	

	public TipoAmbienteCliente getTipoAmbienteCliente() {
		return tipoAmbienteCliente;
	}
	public void setTipoAmbienteCliente(TipoAmbienteCliente tipoAmbienteCliente) {
		this.tipoAmbienteCliente = tipoAmbienteCliente;
	}
	@Override
	public String toString() {
		return this.branch.getNome() + " - " + tpAmbiente.toString() + " - " + getTipoAmbienteCliente().getTipo();
	}
	
	
	
}
